#!/bin/bash
#===============================================================================
# Copyright 2011 zod.yslin
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 
# Author: zod.yslin
# Email: 
# File Name: iscsi.sh
# Description: 
#   在Ubuntu Linux使用Open-iSCSI Initiator連接至iSCSI裝置 (QNAP)
# Edit History: 
#   2011-09-27    File created.
#===============================================================================
本文說明如何使用Linux Open-iSCSI Initiator在Ubuntu作業系統新增iSCSI裝置(QNAP NAS)，擴充磁碟容量。首先，請確定您已在NAS的管理頁面[裝置設定]>[iSCSI裝置]建立iSCSI裝置，並在您的作業系統安裝好正確的iSCSI initiator。

關於 Linux Open-iSCSI Initiator
Linux Open-iSCSI Initiator內建於Ubuntu 8.04 LTS (或以後版本)。您可以在shell prompt輸入指令來加入iSCSI裝置。關於Ubuntu的資訊，請參考： http://www.ubuntu.com/ 有關Open-iSCSI的詳細資料，請參考：http://www.open-iscsi.org/

在開始之前
請先安裝open-iscsi套件，即Linux Open-iSCSI Initiator。
# sudo apt-get install open-iscsi

請參照以下步驟使用Open-iSCSI Initiator連接iSCSI target (QNAP NAS)。
如有使CHAP登入資訊，您可能需要修改iscsid.conf，如 node.session.auth.username及node.session.auth.password。
# vi /etc/iscsi/iscsid.conf

儲存並關閉檔案，然後重新啟動open-iscsi服務。
# /etc/init.d/open-iscsi restart

尋找iSCSI target (在此例中為QNAP NAS)，如IP: 10.8.12.31，連接埠：3260。
# iscsiadm -m discovery -t sendtargets -p 10.8.12.31:3260

選擇要連線的iSCSI node。
# iscsiadm -m node

** 您可以使用以下指令刪除不需要連線的node。
# iscsiadm -m node --op delete --targetname THE_TARGET_IQN

重新啟動open-iscsi並登入要連線的node。
# /etc/init.d/open-iscsi restart

以下訊息將會顯示：
Login session [iface: default, target: iqn.2004-04.com:NAS:iSCSI.ForUbuntu.B9281B,
portal: 10.8.12.31,3260] [ OK ]

使用dmesg檢查裝置狀態。
# dmesg | tail

輸入以下指令建立分割區，裝置名稱為/dev/sdb。
# fdisk /dev/sdb

格式化分割區。
# mkfs.ext3 /dev/sdb1

掛載file system。
# mkdir /mnt/iscsi

# mount /dev/sdb1 /mnt/iscsi/

完成後，您可以使用以下指令測試iSCSI target在Linux上的I/O速度。
# hdparm -tT /dev/sdb1

以下是有關iscsiadm的指令：
尋找主機上的target。
# iscsiadm -m discovery --type sendtargets --portal HOST_IP

登入target。
# iscsiadm –m node --targetname THE_TARGET_IQN --login

登出target。
# iscsiadm –m node --targetname THE_TARGET_IQN --logout

刪除target。
# iscsiadm –m node --op delete --targetname THE_TARGET_IQN
